`:top
Der Begriff `!Formatstring-Angriff`! beschreibt das Ausnutzen einer `F33f`_`[Sicherheitslücke`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Sicherheitslücke_(Software)]`_`f, welche im Jahr 1999 von Przemysław Frasunek und tf8 entdeckt wurde.
Der erste `F33f`_`[Exploit`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Exploit]`_`f, der diese Technik ausnutzte, erlaubte es einem Angreifer, die Kontrolle über `F33f`_`[wu-ftpd`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Wu-ftpd]`_`f 2.6.0 zu übernehmen. Formatstring-Attacken können genutzt werden, um ein Programm zum Absturz zu bringen oder fremden Code auszuführen.
Das Problem rührt von der Benutzung ungefilterter Benutzereingaben in bestimmten `F33f`_`[C`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C_(Programmiersprache)]`_`f-Funktionen her, wie `B100`F9d9printf()`f`b, welche für die Ausgabe formatierten Textes zuständig sind. Ein bösartiger Benutzer könnte zum Beispiel die Formatierungstoken %s und %x benutzen, um sich Daten vom `F33f`_`[Stack`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Stapelspeicher]`_`f ausgeben zu lassen. Mit dem %n-Token lässt sich die Anzahl der ausgegebenen Zeichen (als `F33f`_`[Integer`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Integer_(Datentyp)]`_`f) an eine beliebige Stelle im Speicher schreiben.
Diese `F33f`_`[Schwachstelle`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Schwachstelle_(Organisation)]`_`f ist weit verbreitet, da man Formatierungsfehler früher für harmlos gehalten hat. Am häufigsten tritt sie auf, wenn ein Programm Eingaben des Benutzers wieder ausgeben soll und der Programmierer `B100`F9d9printf(buffer)`f`b anstelle von `B100`F9d9printf("%s", buffer)`f`b schreibt. Bei der ersten Version wird `B100`F9d9buffer`f`b als ein String mit Formatierungstoken interpretiert. Bei der zweiten Version hingegen wird einfach der Eingabestring ausgegeben.
Diese Art von Fehlern kann nur auftreten, da Unterprogrammaufrufe in C nicht typsicher sind und eine variable Anzahl von `F33f`_`[Parametern`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Parameter_(Informatik)]`_`f zugelassen wird, ohne dass eine Überprüfung erfolgt, ob Anzahl und Typ der gelesenen Parameter denen der übergebenen Parameter entsprechen.
>>Weblinks
• Scut, Team Teso, 2001: Exploiting Format String Vulnerabilities (englisch; PDF; 234 kB)
`c`F0af`_`[↑ Back to top`#top]`_`f`a